#ifndef CAMERANUMSETTING_H
#define CAMERANUMSETTING_H

#include <QObject>
#include <QWidget>
#include <QHBoxLayout>
#include <QVBoxLayout>
#include <QSpinBox>
#include <QComboBox>
#include <QCheckBox>
#include <QHBoxLayout>
#include <QVBoxLayout>
#include <QLabel>
#include "ui/DoubleSlider/DoubleSlider.h"
#include <QPushButton>
#include "ENUM/enum.h"
#include "DebugPrint/myDebugPrint.h"
#include "ui/QSS/GlobalQss.h"
#include "ui/optionWidget/optionsItem/optionItemMiddleWidget/MiddleWidgetVirtual.h"

/*
 * optionWidget中参数设置中心组件
 */

class CameraNumSetting : public MiddleWidgetVirtual
{
    Q_OBJECT
public:
    explicit CameraNumSetting(QWidget *parent = nullptr) ;
    int RFixedHeight() override;
    int fixedWidth(ParameterKind kind = ParameterKind::Get, int widget = 0) override;
    bool setPaletteBF(const QPalette& palette) override;
    void LanguageInit() override;
private:
    QLabel *exposureText;
    QLabel *exposureTimerUnitsText;     // 曝光时间的单位
    QSpinBox *exposureSpinBox;          // 具体曝光时间ms
    QComboBox *exposureComboBox;        // 曝光时间取值范围

    DoubleSlider *exposureSlider;       // 曝光时间的滑动条
    QCheckBox *exposureAuto;            // 曝光时长自动选择框

    QLabel *bufferText;                 // 增益显示文本
    DoubleSlider *bufferSlider;         // 增益滑动条
    QSpinBox *bufferSpinBox;            // 增益数值选择器
    QCheckBox *bufferAuto;              // 增益自动选择框
    QPushButton *moreBtn;               // 更多按钮

    QHBoxLayout *HLayout1;              // 当前Widget第一行水平布局
    QHBoxLayout *HLayout2;
    QHBoxLayout *HLayout3;
    QHBoxLayout *HLayout4;
    QVBoxLayout *VLayout;               // 当前Widget的垂直布局

private:
    int exposureMinnum = 1;
    int exposureMaxnum = 100;
    int FixedHeight = 150;
    int FixedWidth = 300;
    int exposureRange = 100;            // 当前曝光时长范围(1~exposureRange)
signals:
    /*
     * signalKind 表示需要发送数值的类型（曝光、增益）
     * int 是需要修改后的值
     */
    void senderValue(signalKind, int);
private slots:
    void exposureRangeChange(const QString& exposureRangeText);          // 当用户更改曝光时长范围时进行修改
};

#endif // CAMERANUMSETTING_H
